package com.studor.controller;

import cn.dev33.satoken.annotation.SaCheckLogin;
import cn.dev33.satoken.stp.StpUtil;
import com.studor.common.Result;
import com.studor.entity.Questionnaire;
import com.studor.service.QuestionnaireService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.List;

@RestController
@RequestMapping("/api/questionnaire")
public class QuestionnaireController {
    
    @Autowired
    private QuestionnaireService questionnaireService;
    
    @GetMapping("/list")
    @SaCheckLogin
    public Result<List<Questionnaire>> list() {
        List<Questionnaire> questionnaires = questionnaireService.list();
        return Result.success(questionnaires);
    }
    
    @GetMapping("/my")
    @SaCheckLogin
    public Result<Questionnaire> getMyQuestionnaire() {
        String accountId = StpUtil.getLoginIdAsString();
        Questionnaire questionnaire = questionnaireService.getById(accountId);
        return Result.success(questionnaire);
    }
    
    @GetMapping("/check-status")
    @SaCheckLogin
    public Result<Boolean> checkQuestionnaireStatus() {
        String accountId = StpUtil.getLoginIdAsString();
        Questionnaire questionnaire = questionnaireService.getById(accountId);
        return Result.success(questionnaire != null);
    }
    
    @PostMapping("/submit")
    @SaCheckLogin
    public Result<Void> submitQuestionnaire(@RequestBody Questionnaire questionnaire) {
        String accountId = StpUtil.getLoginIdAsString();
        questionnaire.setId(accountId);
        
        // 检查是否已存在问卷
        Questionnaire existing = questionnaireService.getById(accountId);
        if (existing != null) {
            questionnaireService.updateById(questionnaire);
            return Result.success("更新问卷成功");
        } else {
            questionnaireService.save(questionnaire);
            return Result.success("提交问卷成功");
        }
    }
} 